package org.lim.domain.space.service;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.IService;
import org.lim.domain.space.entity.SpaceUser;
import org.lim.interfaces.dto.spaceuser.SpaceUserAddRequest;
import org.lim.interfaces.dto.spaceuser.SpaceUserQueryRequest;
import org.lim.interfaces.vo.spaceuser.SpaceUserVO;

import javax.servlet.http.HttpServletRequest;
import java.util.List;

/**
* @author sk
* @description 针对表【space_user(空间用户关联)】的数据库操作Service
* @createDate 2025-06-08 02:21:28
*/
public interface SpaceUserDomainService extends IService<SpaceUser> {
/**
* @description 添加空间用户
* @param spaceUserAddRequest
* @return
*/
    long addSpaceUser(SpaceUserAddRequest spaceUserAddRequest);

    /**
* @description 校验空间用户
* @param spaceUser
* @param add
* @return
*/
    void validSpaceUser(SpaceUser spaceUser, boolean add);

    /**
     * 获取空间成员包装类（单条）
     * @param spaceUser
     * @param request
     * @return
     */
    SpaceUserVO getSpaceUserVO(SpaceUser spaceUser, HttpServletRequest request);

    /***
     * 获取空间成员包装类（列表）
     * @param spaceUserList
     * @return
     */
    List<SpaceUserVO> getSpaceUserVOList(List<SpaceUser> spaceUserList);

    /***
     * 封装查询条件
     * @param spaceUserQueryRequest
     * @return
     */
    QueryWrapper<SpaceUser> getQueryWrapper(SpaceUserQueryRequest spaceUserQueryRequest);
}
